package com.hwl.demo14;

import com.hwl.demo14.entity.GameRole;
import com.hwl.demo14.entity.RoleStateCaretaker;

/**
 * 备忘录模式
 *
 * @author sentry
 * @since 2023-03-21
 */
public class Main {

    public static void main(String[] args) {
        // 大战BOSS前
        GameRole role = new GameRole();
        role.getInitState();
        role.displayState();

        // 保存进度
        RoleStateCaretaker stateAdmin = new RoleStateCaretaker();
        stateAdmin.setMemento(role.saveState());

        // 大战BOSS时，损耗严重
        role.fight();
        // 显示状态
        role.displayState();

        System.out.println("=============开挂复活=============");
        // 恢复进度
        role.recoveryState(stateAdmin.getMemento());

        // 显示状态
        role.displayState();
    }
}
